package inner_class;

/**
 * @author yuisama
 * @date 2022/06/15 20:18
 **/
public class AllLambda {
    public static void main(String[] args) {
        // 双无的对象
//        NoParaNoReturn doubleNo = () -> {
//            System.out.println("无返回值，无参数的接口对象");
//        };
//        doubleNo.test();
        // 规则1.当方法体只有一行代码时，可以省略 {}
//        NoParaNoReturn doubleNo = () -> System.out.println("无返回值无参数的Lambda表达式");
//        doubleNo.test();
//        HasParaNoReturn hasParaNoReturn =  x -> {
//            x += 20;
//            System.out.println(x);
//        };
//        hasParaNoReturn.test(10);
//        int num = 20;
//        HasParaNoReturn hasParaNoReturn1 = new HasParaNoReturn() {
//            @Override
//            // 这个a是内部类自己的参数，不是外部方法的参数
//            public void test(int a) {
//                System.out.println(num ++);
//                a += 20;
//                System.out.println(a);
//            }
//        };
//        NoParaHasReturn noParaHasReturn = () -> {
//            int a = 10;
//            int b = 20;
//            return a + b;
//        };
//        NoParaHasReturn noParaHasReturn = () -> 10 + 20;
//        System.out.println(noParaHasReturn.test());
        HasParaHasReturn hasParaHasReturn = (x,y) -> x += y;
        System.out.println(hasParaHasReturn.test(20,30));
    }
}
interface HasParaHasReturn {
    int test(int a,int b);
}


interface NoParaHasReturn {
    int test();
}

interface HasParaNoReturn {
    void test(int a);
}

interface NoParaNoReturn {
    void test();
}



